草庐IT

Javascript:for..in 循环运行次数超过预期

全部标签

ruby - 使用 Cygwin 运行 Ruby gem

我在Windows上使用Cygwin和cygwin'd版本的ruby​​。$ruby-vruby2.2.2p95(2015-04-13revision50295)[x86_64-cygwin]成功安装rspec(geminstallrspec)后,我尝试运行基本的init命令(rspec--init)开始,但我收到bash命令未找到消息。$rspec--init-bash:rspec:commandnotfound我猜这是因为在我的C:\cygwin64\bin目录下没有“rspec”文件(因为有“ruby”、“irb”等,cygwin在执行命令时必须查看的文件)输入进去)。查看我的c

ruby - 从 emacs 缓冲区运行 ruby

如何从缓冲区运行一段ruby​​代码,而不实际将缓冲区保存在文件中?一个场景是a)切换到暂存缓冲区b)M-xruby模式c)输入ruby代码d)“编译”缓冲区并在另一个缓冲区中打印结果。我不想将缓冲区内容保存在文件中,然后“编译”该文件2011年1月9日更新哪些是ruby​​-mode和inf-ruby的最新版本,我可以从哪里获得它们?我用的是ubuntunatty版的ruby模式和elpa版的emacs23.2的inf-ruby。在干净的emacs配置上,以下配置(见下文)失败:can'tconvertnilintoStringfrom(irb):1:in`eval'from(irb

ruby-on-rails - Rails 控制台 : in `require' : cannot load such file -- readline (LoadError)

我的Rails应用程序出现一些错误,我正在尝试通过发出以下命令来启动Rails控制台:railsconsole无论我尝试什么,我总是得到同样的错误:/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/completion.rb:9:in`require':cannotloadsuchfile--readline(LoadError)from/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/completion.rb:9:in`'from/opt/mammie/web/icosole

ruby - 无法在 OSX 上使用 RVM 运行 Ruby 2.2.3

我有两台MacBook(一台在Mavericks上,另一台在Yosemite上),同样的事情发生在两台电脑上。使用RVM安装Ruby2.2.3后,出现以下错误:.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/net/http.rb:923:in`connect':SSL_connectreturned=1errno=0state=SSLv3readservercertificateB:certificateverifyfailed(Faraday::SSLError)我试过在线搜索解决方案,但似乎没有任何效果。大多数遇到此问题的人都在运行Windows机器。

ruby-on-rails - map(& :name) do in this Ruby code? 是什么意思

为了更好地理解Ruby,我在网上冲浪时遇到了这段代码:require'rubygems'require'activeresource'ActiveResource::Base.logger=Logger.new("#{File.dirname(__FILE__)}/events.log")classEvent"Shortesteventevar!",:starts_at=>1.second.ago,:capacity=>25,:price=>10.00)e.destroy我特别感兴趣的是events.map(&:name)是如何工作的?我看到events是一个数组,因此它调用了它的ma

Ruby 对象字面量(ala javascript)

在ruby中你可以去a={}a['a']=82a['b']='foo'putsa['a']#82我希望我可以使用点符号,例如javascript。将a.a#82有没有办法在ruby​​中构建对象文字并使用点表示法访问它们? 最佳答案 您可以创建一个Struct.A=Struct.new(:a,:b)a=A.new(82,'foo')putsa.a#=>82编辑:你甚至可以做到a={}a['a']=82a['b']='foo'Struct.new(*a.keys).new(*a.values)

ruby-on-rails - 之前(:each) for all tests except one

这是我的spec_helper.rb的一部分:RSpec.configuredo|config|config.before(:each)dologin(email,password)visitroot_urlendend我在所有(20多个)测试中都需要,除了一个。有没有办法避免单一测试执行beforehook? 最佳答案 您可以将元数据添加到不需要登录的测试中,然后在您的beforeHook中评估该元数据。例如,同一个文件中的两个测试。一个需要登录,一个不需要。#foo_spec.rbdescribeFoododescribe"#b

arrays - Set in ruby​​ 的优点

Set的主要优点似乎是保持独特的元素。但这可以在Array中轻松实现,array=[2,3,4]array|[2,5,6]#=>[2,3,4,5,6]我遇到的唯一明显特征(可能适用于少数用例)是,set1=[1,2,3].to_setset2=[2,1,3].to_setset1==set2#=>true[1,2,3]==[2,1,3]#=>false既然Array有各种相关的功能和操作,我什么时候以及为什么要使用Set?有很多比较Array和Set的链接,但我还没有遇到Set的重要应用。 最佳答案 当然,无论您可以使用Set做什么

ruby-on-rails - rails console - 运行一段代码

我了解如何在Rails控制台中运行一段简单的代码。说Swimming::Student.create(:name="Jerry")我如何运行一大段代码(很多行)Swimming::Student.all.each{|student|student.attended=flasestudent.save} 最佳答案 如您所料,只需按回车键:$railscLoadingdevelopmentenvironment(Rails3.2.13)2.0.0p0:001>Student.all.eachdo|student|#enter2.0.0p

Ruby 等价于 Python 的 for/else

我一直在寻找类似Python的while/else结构的东西来改进我的代码。这意味着循环被执行,如果循环中的条件在任何时候都不为真,那么它返回else语句中的值。在ruby中,我可以这样做:if@items.empty?"Empty"else@items.eachdo|item|itemendend那么有什么办法可以改善吗?提前谢谢你。 最佳答案 请记住,迭代器block会返回您放入其中的内容,可以对其进行测试以供进一步使用。ifarr.eachdo|item|item.some_action(some_arg)end.empty?